home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / lib / xm / scale.d < prev    next >
Encoding:
Text File  |  1989-10-12  |  1013 b   |  38 lines

  1. ;;; -*-Scheme-*-
  2.  
  3. (define-widget-type 'scale "Scale.h")
  4.  
  5. (define-widget-class 'scale 'xmScaleWidgetClass)
  6.  
  7. (prolog
  8.  
  9. "static Object Get_Scale_CB (p) XmScaleCallbackStruct *p; {
  10.     Object ret, s;
  11.     extern SYMDESCR Reason_Syms[];
  12.     GC_Node2;
  13.  
  14.     ret = s = Make_Integer (p->value);
  15.     GC_Link2 (ret, s);
  16.     ret = Cons (ret, Null);
  17. #ifdef SCALE_WIDGET_WORKS   /* It doesn't. */
  18.     s = Get_Any_CB ((XmAnyCallbackStruct *)p);
  19. #else
  20.     s = Intern (\"event-goes-here-when-Xm-is-fixed\");
  21.     s = Cons (s, Null);
  22.     s = Cons (Bits_To_Symbols ((unsigned long)p->reason, 0, Reason_Syms), s);
  23. #endif
  24.     ret = Cons (Cdr (s), ret);
  25.     ret = Cons (Car (s), ret);
  26.     GC_Unlink;
  27.     return ret;
  28. }")
  29.  
  30. (define-callback 'scale 'dragCallback          #t)
  31. (define-callback 'scale 'valueChangedCallback  #t)
  32.  
  33. (define scale-callback->scheme
  34. "   return Get_Scale_CB ((XmScaleCallbackStruct *)x);")
  35.  
  36. (c->scheme 'scale-dragCallback         scale-callback->scheme)
  37. (c->scheme 'scale-valueChangedCallback scale-callback->scheme)
  38.